#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Core;
using Cephei.Core.Generic;
using Microsoft.FSharp.Core;
using Cephei.QL.Models.Marketmodels;
namespace Cephei.QL.Models.Marketmodels.Pathwisegreeks
{
    /// <summary> 
	/// ! There are too many pseudo-root elements to allow bumping them all independently so we cluster them together and then divide all elements into a collection of such clusters.
	/// </summary>
    [Guid ("B7CD93A6-7589-45b9-81F0-B34923ED797D"),ComVisible(true)]
	public interface IVegaBumpCollection 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        /// <summary> 
		/// 
		/// </summary>
		 Cephei.Core.IVector<Cephei.QL.Models.Marketmodels.Pathwisegreeks.IVegaBumpCluster> AllBumps {get;}
        /// <summary> 
		/// 
		/// </summary>
		 Cephei.QL.Models.Marketmodels.IMarketModel AssociatedModel {get;}
        /// <summary> 
		/// 
		/// </summary>
		 Boolean IsFull {get;}
        /// <summary> 
		/// 
		/// </summary>
		 Boolean IsNonOverlapping {get;}
        /// <summary> 
		/// 
		/// </summary>
		 Boolean IsSensible {get;}
        /// <summary> 
		/// 
		/// </summary>
		 UInt64 NumberBumps {get;}
    }   

    /// <summary> 
	/// ! There are too many pseudo-root elements to allow bumping them all independently so we cluster them together and then divide all elements into a collection of such clusters. Factory
	/// </summary>
   	[ComVisible(true)]
    public interface IVegaBumpCollection_Factory 
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        /// <summary> 
		/// 
		/// </summary>
	    IVegaBumpCollection Create (Cephei.Core.IVector<Cephei.QL.Models.Marketmodels.Pathwisegreeks.IVegaBumpCluster> allBumps, Cephei.QL.Models.Marketmodels.IMarketModel volStructure);
        /// <summary> 
		/// 
		/// </summary>
	    IVegaBumpCollection Create (Cephei.QL.Models.Marketmodels.IMarketModel volStructure, Microsoft.FSharp.Core.FSharpOption<Boolean> allowFactorwiseBumping);
    }
}

